package com.itheima.d02_xml;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.util.List;

/**
 * 目标：了解XMl解析
 * 实现：使用第三方解析工具Dom4j进行解析
 */
public class Test {

    public static void main(String[] args) throws Exception {
        //1.创建XML解析器对象SaxReader
        SAXReader sax = new SAXReader();

        //2.使用解析器对象把xml文件读取成 Document 对象
        Document doc = sax.read("day12_properties_xml_log\\src\\com\\itheima\\d02_xml\\users.xml");

        //3.解析操作
        //3.1 获取根元素
        Element root = doc.getRootElement();//Element元素对象 == 一对标签
        System.out.println("根标签名称："+root.getName());

        List<Element> elements = root.elements("cat");
        for (Element element : elements) {
            System.out.println("根标签中的子标签名称："+element.getName());
        }

        System.out.println("=========");
        Element catElement = root.element("cat");
        System.out.println("根标签中第一个cat子标签："+catElement.getName());

        System.out.println("=========");
        //先获取标签中的指定属性对象
        Attribute idAttribute = root.attribute("id");
        //获取属性对象的值
        System.out.println("根标签中id属性值："+idAttribute.getValue());

        //直接获取标签中指定属性的属性值
        System.out.println(root.attributeValue("id"));

        System.out.println("=========");
        //先获取标签中指定的子标签的对象
        Element catEle = root.element("cat");
        //获取文本数据
        System.out.println("根标签指定子标签的数据："+catEle.getText());

        System.out.println("根标签指定子标签的数据："+root.elementText("cat"));

    }

}
